]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st: Be more forgiving when calling get_theme_node() on unstaged widgets
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 24 Jun 2013 16:09:04 +0000 (18:09 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 24 Jun 2013 19:53:42 +0000 (21:53 +0200)
While it is obviously still an error to call get_theme_node() on a
widget that hasn't been added to the stage hierarchy yet, asserting
on it hasn't proven too successful in avoiding those errors - it's
likely the most frequent reason for crash reports. Just accept that
there'll always be code paths where we can hit this case and make
it non-fatal.

https://bugzilla.gnome.org/show_bug.cgi?id=610279

src/st/st-widget.c

index 91db0c3d29d745de714fd7ff5a0102c3fbbfd97d..9712cb973ad4512c2caa12fe3ebf02f86ef53524 100644 (file)
@@ -643,8 +643,9 @@ st_widget_get_theme_node (StWidget *widget)
 
       if (stage == NULL)
         {
-          g_error ("st_widget_get_theme_node called on the widget %s which is not in the stage.",
-                    st_describe_actor (CLUTTER_ACTOR (widget)));
+          g_critical ("st_widget_get_theme_node called on the widget %s which is not in the stage.",
+                      st_describe_actor (CLUTTER_ACTOR (widget)));
+          return g_object_new (ST_TYPE_THEME_NODE, NULL);
         }
 
       if (parent_node == NULL)